برای ساخت شخصیت محبوب و جالب سوپرماریو، از المانها و قوانین فیزیکی مشخص و ثابتی پیروی میشود.
به گزارش سافت گذر و به نقل اززومیت؛ این
اولین بار نیست که در مقالهای به بررسی ابعاد فیزیک بازی سوپرماریو
پرداخته میشود. برای مثال در مقالهای جالب، به پرش سوپرماریو در انتهای
یک سطح از بازی پرداخته شده بود که چگونه او میتواند تا بالاترین نقطهی
پرچم بالا برود. همچنین در مقالهای دیگر به شتابگیری و سرعت سوپرماریو در
بازیهای مختلف پرداخته شده بود.
اما انتشار بازی جدید سوپرماریو
«Super Mario Run» برای iOS این فرصت را برای ما مهیا کرد تا نگاه دیگری به
مبنای فیزیکی بازی سوپرماریو بیندازیم.
آنالیز ویدیو
بهترین
روش برای به دست آوردن اطلاعات از یک بازی ویدیویی، ضبط کردن اکشن بازی و
استفاده از برنامههای آنالیز ویدیو است. با استفاده از این قابلیت میتوان
اطلاعات مکان و زمان ماریو را با نگاه کردن به مکان آن در هر فریم استخراج
کرد. این تحلیل دارای جزئیات بسیاری است، به گونهای که میتوان یک کتاب
در مورد آن نوشت؛ اما در اینجا تنها به اشاره به چند نکته بسنده میکنیم.
چطور
میتوان ویدیو را ضبط و آن را به رایانه منتقل کرد؟ یک راه ساده برای
انجام این کار با گوشی آیفون، این است که آن را به یک رایانهی اپل متصل
کنید. به این ترتیب میتوانید با استفاده از QuickTime، آنچه را که در
اسکرین گوشی نمایش داده میشود، ضبط کنید. البته برنامههای مفیدی نیز برای
گوشیهای اندروید وجود دارد که با نصب آن در گوشی خود میتوانید همین کار
را انجام دهید.
از چه برنامهای برای تحلیل ویدیو استفاده کنیم؟ در
اینجا دو برنامهی پرکاربرد را نام میبریم: یکی برنامهی Tracker Video
Analysis است، که از همین برنامه در نگارش این مقاله استفاده شده است و
دیگری، برنامهی Vernier's Logger Pro است. برنامهی اول رایگان است و
امکانات بیشتری دارد، از طرف دیگر Logger Pro نیز بسیار ارزان است و شاید
دانشآموزان با آن آشنا باشند.
در مورد پسزمینهی در حال حرکت چه
باید کرد؟ این کار به نظر مشکل میرسد. اساسا شما باید در هر فریم، مبدأ
مختصات را جابهجا کنید، که کار خیلی سختی هم نیست.
در مورد ابعاد
چطور؟ اندازهی ماریو چقدر است؟ خب، پیدا کردن راهحل برای این مسائل کمی
دشوار است. در اینجا، سه فاکتور بسیار مهم وجود دارد: شتاب، اندازه، نرخ
فریم. اگر شما دو مورد از سه مورد اشارهشده را داشته باشید، میتوانید
مورد سوم را تعیین کنید. ما در اینجا ابتدا فرض میکنیم که نرخ فریم برابر
سرعتِ زمان-واقعی است و از مقیاس یک سکه برای بعد مسافت استفاده میکنیم.
بعد از آن تصمیم میگیریم که چگونه پیش برویم.
حرکت پرتابی
در مورد استخراج دادهها، ابتدا به سراغ موقعیت سوپرماریو هنگام دویدن (پیش از پرش) میرویم. اطلاعات بهدستآمده بهصورت زیر است:
در
مورد قسمت ابتدایی نمودار چه اتفاقی افتاده است؟ شاید بخشی از حرکت
سوپرماریو در هوا را ضبط کردهایم. در هر صورت، با صرف نظر کردن از قسمت
ابتدایی، میتوان گفت که بقیهی نمودار خطی است. از آنجایی که سرعت افقی
برابر است با نرخ جابهجایی، شیب این نمودار همان سرعت ماریو در جهت x است.
مقدار بهدستآمده برای سرعت افقی برابر ۷.۲۱ سکه در ثانیه است. در نمودار
زیر نیز موقعیت y ماریو هنگام دویدن نمایش داده شده است.
به
نظر میرسد که هر گام سوپرماریو ۰.۲ ثانیه زمان میبرد. البته از مفید
بودن این اطلاعات مطمئن نیستیم؛ با این حال بد نبود اشارهای نیز به این
نکته داشته باشیم. بعد از اینکه سوپرماریو پرواز خود را شروع میکند، حرکت
او بهصورت حرکت پرتابی درمیآید. برای حرکت پرتابی نیز قوانین زیر را
داریم:
- اگر فرض کنیم که این
حرکت در سطح کرهی زمین رخ میدهد، شتاب رو به پایین، ۹.۸ متر بر مجذور
ثانیه خواهد بود؛ چرا که تنها نیروی رو به پایین اعمالشده بر پرتابه،
نیروی گرانش زمین است.
- از آنجایی که هیچگونه نیروی افقی وجود ندارد، بنابراین سرعت افقی پرتابه ثابت میماند.
اما آیا سرعت در راستای y نیز ثابت است؟ در اینجا به نمودار موقعیت x نسبت به زمان در حین پرواز ماریو، نگاه کنید.
بر پایهی آنچه مشاهده میکنیم، سرعت افقی ثابت و تقریبا برابر با سرعت دویدن ماریو است؛ اما در مورد سرعت عمودی چطور؟
نمودار
بالایی نشانگر یک شتاب عمودی ثابت نیست. اگر شتاب عمودی در حرکت پرتابه
ثابت باشد - که در این مورد همینطور است - نمودار مکان-زمان باید بهصورت
منحنی درجه دو باشد. نمودار بالا منحنی درجه دو نیست. در عوض به نظر میرسد
سرعت بالارفتن ماریو ثابت است و به همراه شتاب روبهپایین ثابت، با سرعت
رو به پایین ثابتی نیز پایین میآید. سرعت عمودی ماریو در حدود ۱۵ سکه بر
ثانیه است.
از آنجایی که شتاب در بالاترین نقطهی مقدار ثابتی به نظر
میآید، منحنی درجه دو را روی دادهها برازش میکنیم. با توجه به
پارامترهای ثابت، شتاب روبهپایین بهدستآمده برای حرکت ماریو ۶.۳ سکه بر
مجذور ثانیه خواهد بود.
اندازهی ماریو چقدر است؟
اینجا بحث
ما کمی جنبهی خندهدار به خود خواهد گرفت. فرض کنید که ماریو روی زمین
زندگی میکند و شتاب روبهپایین هم با شتاب گرانشی زمین برابر است؛ پس
ابتدا میتوانیم اندازهی یک سکه را به دست آوریم و ابعاد دیگر اشیا در
بازی را با آن مقایسه و در واحد سکه بیان کنیم. ابتدا دو شتاب بهدستآمده
برای حرکت روبهپایین را با هم برابر میگیریم.
واحدها را میتوانیم همانند متغیرها در نظر بگیریم. رابطهی بالا را برای به دست آوردن رابطهی بین سکه و متر حل میکنیم.
پس
در نتیجه قطر یک سکه برابر ۱.۵۶ متر میشود. تعجبآور است. با نگاه کردن
به ماریو و یک مقایسهی ساده نتیجه میگیریم که قد ماریو برابر ۱.۲۶ سکه یا
به عبارتی برابر ۱۹۷ سانتیمتر است: قدبلند و خوشتیپ! اما موضوع، قد بلند
ماریو نیست، بلکه اندازهی سر ماریو نسبت به بدن او است که بسیار بزرگ به
نظر میرسد.
تکلیف پیشنهادی
مشخص است که ما بعضی سؤالات را بیپاسخ گذاشتیم، شما در صورت تمایل یا کنجکاوی میتوانید این تکالیف را انجام دهید:
- در
بازی Super Mario Run، یک پرش دومرحلهای وجود دارد. این پرش چطور انجام
میپذیرد؟ شتاب چگونه است؟ در مورد سرعت افقی چطور؟ البته این تکلیف درواقع
سه سؤاله شد.
- چرا سرعت عمودی (در راستای y) بالا رفتن و پایین آمدن ماریو تقریبا ثابت است؟ یک توضیح معقول ارائه دهید.
- در این مقاله، سرعت عمودی بالا رفتن و پایین آمدن ماریو کمی با یکدیگر متفاوت بود، آیا همیشه این اتفاق میافتد؟
- در
مورد سکهها چطور؟ حجم آنها را تخمین بزنید و با استفاده از آن، جرم
سکهها را تعیین کنید و برآورد کنید چه مقدار طلا برای ساخت یک سکه استفاده
میشود.
- با استفاده از python یک مدل عددی برای شبیهسازی پرشهای ماریو بسازید. البته شاید روزی مقالهای در این مورد داشته باشیم.